<?php

namespace Main\Api\Common;

// 工具类
use FC\Tools\Image;

// 控制器基类
use FC\Controller\BaseController;

class images extends BaseController
{
    function __construct()
    {
		// 实例化父类构造
		parent::__construct();
         // 文件存储位置
        $this->upload_path = PATH['NOW'] . '/Uploads/';
        // 文件访问地址
        $this->upload_url = HOST_DOMAIN . HOST_DIR . '/Uploads/';			
        // 文章缩略图存储位置
        $this->cover_path = PATH['NOW'] . '/images/';	
        // 文章缩略图访问地址
        $this->cover_url = HOST_DOMAIN . HOST_DIR . '/images/';			
    }
	
    /*
     * 缩放图片
     * $url 图片地址
     * $w 图片的新宽度
     * $h 图片的新高度
     */
    public function index($id, $w = 50, $h = 50)
    {
        if (empty($id)) {
			\FC\head(404);
            if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false) {
                die(); 
            }
			die();
        }
		$files = $this->files_model->getOnly(['id'=>$id]);
		if(!$files){
			\FC\head(404);
			die();
		}
		$img_path = $this->upload_path . $files['path'];
		$path_arr =  pathinfo($files['path']);
		$dir = $path_arr['dirname'];
		$Image = new Image();
        $width  = (int) $w ?? 50;
        $height = (int) $h ?? 50;
        $size = $w . '_' . $h;
		$file_name = $dir.'/'.$id.'_'.$size.'.jpg';
        $simg  = $this->cover_path . $file_name;
        if ($width) {
            $image = $Image->setimg($img_path);
            // 获取图片信息
            $info  = $image->getImageInfo($img_path);
            // 获取图片原来的大小
            if (!empty($info[0])) {
                $old_w = $info[0];
                $old_h = $info[1];
            }
            if (!$h) {
                $h = $old_h;
            }
            // 如果图片的高度大于图片的宽度
            if ($old_h > $old_w) {
                // 这里就允许裁剪了
                $image->thumb($simg, $w, $h, 1);
            } else {
                $image->thumb($simg, $w, $h);
            }
        }
        if (is_file($simg)) {
            \FC\head('jpeg');
            echo file_get_contents($simg);
			die();
        }
		
		\FC\head(404);
		die();
    }
}	